/**
 * 小程序中页面通信的方式：（A 页面打开 B页面）
 *    1. 通过 getCurrentPages 来操作
 *      B -> A
 *      const pages = getCurrentPages()
 *      const prevPage = pages[pages.length - 2]
 *    2. 通过 EventChannel 来操作
 *      B -> A
 *          A 通过 在 navigateTo 的 success 中通过 res.eventChannel.on 绑定事件
 *          B 通过 this.getOpenerEventChannel() 得到 eventChannel，然后调用 emit 来触发事件
 *      A -> B
 *          A 通过 在 navigateTo 的 success 中通过 res.eventChannel.emit 触发事件
 *          B 通过 在 onLoad 中获取到 this.getOpenerEventChannel() 得到 eventChannel，调用 on 来绑定事件
 *    3. 传递参数
 *          A 跳转到 B 时，在 url 地址后通过 ? 号传递参数过去
 *          B 页面在 onLoad 的参数中获取即可。
 */

Page({
  fn1() {
    // 1. switchTab 切换TabBar页面
    // wx.switchTab({
    //   url: '/pages/cinemas/cinemas',
    // })

    // 2. navigateTo 打开新页面
    // wx.navigateTo({
    //   url: '/pages/about/about?name=aaa',
    // })

    // 3. navigateBack 后退页面

    // 4. redirectTo - 重定向页面
    // wx.redirectTo({
    //   url: '/pages/about/about',
    // })

    // 5. reLaunch - 关闭所以页面，打开到应用中某个页面
    // wx.reLaunch({
    //   url: '/pages/about/about',
    // })

    // wx.redirectTo({
    //   url: '/pages/cinemas/cinemas',
    // })


    // 页面间通信
    wx.navigateTo({
      url: '/pages/about/about?id=100',
      success: (res) => {
        console.log('跳转成功', res)
        // res.eventChannel

        // emit 触发事件
        res.eventChannel.emit('abcd', '张三', 18)

        setTimeout(() => {
          console.log('===', res.eventChannel)
        }, 1000)
        

        // on 监听事件
        res.eventChannel.on('refresh', this.refresh)
      }
    })
  },

  refresh() {
    console.log('Refresh')
  }
})